package com.gientech.sys.eventPara;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;

@Data
@ApiModel(value = "事件参数--修改DTO")
public class SysEventParaDTO4Update implements Serializable {
    @ApiModelProperty(value = "事件ID，雪花算法ID", required = true, position = 1)
    @Size(max = 32, message = "事件ID的长度必须小于等于32")
    private String remindTempId;// 事件ID

    @ApiModelProperty(value = "事件大类", required = true, position = 2)
    @NotBlank(message = "[EVENT_TYPE]事件大类，不能为空")
    @Size(max = 32, message = "事件大类的长度必须小于等于32")
    private String eventType;// 事件大类

    @ApiModelProperty(value = "事件细类", required = true, position = 3)
    @NotBlank(message = "[EVENT_SMALL_TYPE]事件细类，不能为空")
    @Size(max = 32, message = "事件细类的长度必须小于等于32")
    private String eventSmallType;// 事件细类

    @ApiModelProperty(value = "金额（元）", required = false, position = 4)
    @Max(value = 9999999999L, message = "金额不能大于{value}")
    private BigDecimal thresholdMon;// 金额（元）

    @ApiModelProperty(value = "提前提醒天数/未维护间隔天数", required = false, position = 5)
    @Min(value = 0, message = "提前提醒天数/未维护间隔天数不能小于0")
    @Max(value = 99999, message = "提前提醒天数/未维护间隔天数不能大于{value}")
    private BigDecimal dayNum;// 提前提醒天数/未维护间隔天数

    @ApiModelProperty(value = "提醒角色ID", required = true, position = 6)
    @NotBlank(message = "[REMIND_ROLE_ID]提醒角色ID，不能为空")
    @Size(max = 32, message = "提醒角色ID的长度必须小于等于32")
    private String remindRoleId;// 提醒角色ID

    @ApiModelProperty(value = "状态", required = true, position = 7)
    @NotBlank(message = "[IS_OK]状态，不能为空")
    @Size(max = 32, message = "状态的长度必须小于等于32")
    private String isOk;// 状态

    @ApiModelProperty(value = "有效时间（天）", required = true, position = 8)
    @NotNull(message = "[VALID_DAY]有效时间（天），不可为空")
    @Min(value = 0, message = "有效时间（天）不能小于0")
    @Max(value = 9999, message = "有效时间（天）不能大于{value}")
    private BigDecimal validDay;// 有效时间（天）

    @ApiModelProperty(value = "维护人", required = false, position = 9)
    @Size(max = 32, message = "维护人的长度必须小于等于32")
    private String modifyUserId;// 维护人

    @ApiModelProperty(value = "维护时间", required = false, position = 10)
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date modifyTime;// 维护时间

    @ApiModelProperty(value = "维护人所在机构", required = false, position = 11)
    @Size(max = 32, message = "维护人所在机构的长度必须小于等于32")
    private String modifyOrgId;// 维护人所在机构
}
